<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>第一个JSP程序</title>
    <script type="text/javascript" src="../jquery-1.8.3.js"></script>
    <script type="text/javascript">
        $(function() {
            function wait() {
                //setTimeout 是异步的
                //通过promise来操作 $.Deferred对象.promise()方法来获取promise对象
                var def = $.Deferred();
                setTimeout(function() {
                    alert("invoke");
                    //来指定函数已经执行完成，
                    //如果执行成功 使用 resolve
                    //失败 使用 reject
                    //def.resolve("abc");
                    //def.reject("ok");

                    //第一个参数是上下文对象
                    def.rejectWith($("div"),["ok"]);
                }, 1000);
                return def.promise();
            }
            wait().done(function(value){
                alert("success:"+value);
            }).fail(function(value) {
                //this就是指向这个函数的对象 如果希望获取相应的上下文做this
                //可以在调用的时候通过def.rejectWith("上下文对象")
                // for(var n in this) {
                //     alert(this[n]+":"+n);
                // }
                alert(this.append("abc"));
                alert("fail:"+value[0]);
            });

        })
    </script>
</head>

<body>
    <div></div>

</body>

</html>
